import sys
from PyQt5.QtWidgets import QHBoxLayout, QMainWindow, QApplication, QWidget, QPushButton

class QuitApplication(QMainWindow):
    def __init__(self):
        super().__init__()
        self.resize(300,120)
        self.setWindowTitle('退出应用程序')

        #添加button 全局变量
        self.button1=QPushButton('退出应用程序')  #button的名字

        # 将信号与槽关联（关键）！！！！！！！！！
        self.button1.clicked.connect(self.onClick_Button)  #与刚定义的函数（槽）绑定

        layout=QHBoxLayout()            #创建水平布局（实例化）
        layout.addWidget(self.button1)  #将button1加入到水平布局上

        mainFrame=QWidget()             #实例化
        mainFrame.setLayout(layout)     #把layout放在这个里面

        self.setCentralWidget(mainFrame)  #把主框架放在整个窗口上

    #按钮单机事件的方法 (自定义的槽)
    def onClick_Button(self):
        sender=self.sender()    #发送信号的对象
        print(sender.text()+'按钮被按下')
        app = QApplication.instance()
        #退出应用程序
        app.quit()

if __name__=='__main__':
    app=QApplication(sys.argv)
    main=QuitApplication()
    main.show()
    sys.exit(app.exec_())